package com.wzy.io;

import java.io.File;

import org.junit.Test;

import com.google.common.base.Charsets;
import com.google.common.io.CharSink;
import com.google.common.io.CharSource;
import com.google.common.io.Files;

public class GuavaIODemo
{
	/**
	 * 提供了 ByteStreams ： 对 InputStream 和 OutputStream的操作
	 * CharStreams： 对 Reader和Writer的操作
	 * 源是可读的： ByteSource 、 CharSource
	 * 汇是可写的： ByteSink 、 CharSink
	 */

	@Test
	public void testFileIO() throws Exception
	{
		// copy 文件操作

		// 创建对应的source和sink ， 由于是基于Files创建的，这里并不需要手动的关闭资源
		CharSource charSource = Files.asCharSource(new File("Source.txt"), Charsets.UTF_8);
		// 如果Copy.txt没有则会自动创建
		CharSink charSink = Files.asCharSink(new File("Copy.txt"), Charsets.UTF_8);

		// 拷贝
		charSource.copyTo(charSink);

		// 简化的API
		Files.copy(new File("Source.txt"), new File("test.txt"));

	}

}
